COMPASS Properties - Overview

COMPASS Version 6.2, 6.3, 6.4 © General Re Corporation 2021 - 2026. All Rights Reserved (created: 2026-06-16 generated: 2026-07-10)

Introduction

CompassService and RuleManagerService are both Spring Boot - based applications and can be configured via property parameters. Those properties can be defined in multiple ways, i.e. as Java system properties. These parameters may be passed to CompassService / RuleManagerService in different ways: A complete overview of the possible options can be found at the Spring website.
This document gives an overview of all relevant property parameters regarding CompassService and RuleManagerService.

This document describes in detail how properties can be passed to COMPASS (see How to pass properties) and lists all relevant configuration properties of CompassService (see Overview of properties for CompassService) and RuleManagerService (see Overview of properties for RuleManagerService).

How to pass properties

In the following chapters, different ways to configure COMPASS via properties are described.

Property Parameters as Java property files

Property parameters may be passed as property files to Spring Boot. Therefore, the command line parameter spring.config.location needs to be passed to the Java runtime containing the name of the config-file incl. its full path:

java -cp YourApp.jar org.springframework.boot.loader.WarLauncher --spring.config.location=${CATALINA_HOME}/config/YourProperties.properties

Property parameters in this overview are described as shown below and converted into a Java property as follows:

Table 1. Syntax
Property Name Java property

property.name1.name2[.name…​]

property.name1.name2[.name…​]=SomeContent

Table 2. Example
Property Name Java property

compass.parameter.fullloadsystem

compass.parameter.fullloadsystem=true

Click for a real world example of configuration with a property file
compass.systemname=rm62
compass.language=en
compass.country=
compass.subLocale.languages=nl;nl;de
compass.subLocale.countries=;BE;
compass.database.global.url=jdbc:mariadb://localhost:3306/rm62
compass.database.global.driver=org.mariadb.jdbc.Driver
compass.database.global.user=UW_POS
compass.database.global.password=UW_POS
compass.parameter.fullloadsystem=false
compass.parameter.loadAllCasesOnStartup=true
compass.parameter.testDate=31.12.2023
compass.parameter.fopdirectory=C:\ij_git\compass_service\configSamples\REST\script
compass.parameter.loggingarea=0
compass.security.cors.enabled=true
compass.security.cors.crossOrigin.urls=http://10.130.130.115:8085,http://localhost:4200
compass.security.clientId=rm-client
compass.security.clientSecret=rm-client-secret
compass.security.oauthServerUrl=http://localhost:8087/CompassAuthorization/oauth/check_token
compass.security.resource_id=compass-service
compass.security.tokenValidationTimeout=0
logging.level.root=INFO
logging.file.name=./log/CompassService.log
logging.level.com.cr.compass.rest=DEBUG
logging.pattern.file=%d{ISO8601} [%-5level] %logger{15}:%L - %msg%n
logging.pattern.console=%d{ISO8601} [%highlight(%-5level)] %cyan(%logger{15}:%L) - %msg%n
server.port=8086
server.servlet.contextPath=/CompassService
springdoc.swagger-ui.path=/api.html
spring.profiles.active=default,noAuthorization
spring.security.oauth2.resourceserver.jwt.issuer-uri=http://10.130.130.115:8085/realms/CaseViewer

Property Parameters as YAML files

Property parameters may be passed as YAML files to Spring Boot.

Therefore, the command line parameter spring.config.location needs to be passed to the Java runtime containing the name of the config-file incl. its full path:

java -cp YourApp.jar org.springframework.boot.loader.WarLauncher --spring.config.location=${CATALINA_HOME}/config/YourYamlFile.yaml

Property parameters in this overview are described as shown below and converted into a YAML entry as follows:

Table 3. Syntax
Property Name YAML property

property.name1.name2[.name…​]

property:
   name1:
      name2:
         [name…​]:SomeContent

Table 4. Example
Property Name YAML property

compass.parameter.fullloadsystem
   

compass:
      parameter:
         fullloadsystem:true

Click for real-world example of configuration with a YAML file
# config COMPASS service
# GenRe 2021-07-14
server:
  port: '8086'
  servlet:
    contextPath: "/CompassService"
compass:
  systemname: rm62
  language: en
  country:
  subLocale:
    languages: nl;nl;de
    countries: ;BE;
  database:
    global:
      url: jdbc:mariadb://localhost:3306/rm62
      driver: org.mariadb.jdbc.Driver
      user: UW_POS
      password: UW_POS
  parameter:
    fullloadsystem: false
    testDate: 31.12.2023
    fopdirectory: C:\ij_git\compass_service\configSamples\REST\script
    loggingarea: 0
    loadAllCasesOnStartup: true
  security:
    cors:
      enabled: true
      crossOrigin:
        urls: http://10.130.130.115:8085,http://localhost:4200
    clientId: rm-client
    clientSecret: rm-client-secret
    oauthServerUrl: http://localhost:8087/CompassAuthorization/oauth/check_token
    resource_id: compass-service
    tokenValidationTimeout: 0
logging:
  file:
    name: ./log/CompassService.log
  level:
    root: INFO
    com:
      cr:
        compass:
          rest: DEBUG
    org:
      springframework:
        boot:
         autoconfigure: ERROR
  pattern:
    file: "%d{ISO8601} [%-5level] %logger{15}:%L - %msg%n"
    console: "%d{ISO8601} [%highlight(%-5level)] %cyan(%logger{15}:%L) - %msg%n"
springdoc:
  swagger-ui:
    path: /api.html
spring:
  profiles:
    active: default,noAuthorization
  security:
    oauth2:
      resourceserver:
        jwt:
          issuer-uri: http://localhost:8080/realms/CaseViewer

Property Parameters as JSON files

Property parameters may be passed as JSON files to Spring Boot.

Therefore, the command line parameter spring.config.location needs to be passed to the Java runtime containing the name of the config-file incl. its full path:

java -cp YourApp.jar org.springframework.boot.loader.WarLauncher --spring.config.location=${CATALINA_HOME}/config/YourJSONFile.json

Property parameters in this overview are described as shown below and converted into a JSON entry as follows:

Table 5. Syntax
Property Name JSON property

property.name1.name2[name…​]

property: {
   name1: {
      name2: {
         [name…​]:SomeContent
         }
      }
   };

Table 6. Example
Property Name JSON property

compass.parameter.fullloadsystem: {
   

compass: {
      parameter:
         fullloadsystem:true
         }
      }
   };

Click for real-world example of configuration with a JSON file
{
  "server": {
    "port": "8086",
    "servlet": {
      "contextPath": "/CompassService"
    }
  },
  "compass": {
    "systemname": "rm62",
    "language": "en",
    "country": "",
    "subLocale": {
      "languages": "nl;nl;de",
      "countries": ";BE;"
    },
    "database": {
      "global": {
        "url": "jdbc:mariadb://localhost:3306/rm62",
        "driver": "org.mariadb.jdbc.Driver",
        "user": "UW_POS",
        "password": "UW_POS"
      }
    },
    "parameter": {
      "fullloadsystem": false,
      "testDate": "31.12.2023",
      "fopdirectory": "C:\\ij_git\\compass_service\\configSamples\\REST\\script",
      "loggingarea": 0,
      "loadAllCasesOnStartup": true
    },
    "security": {
      "cors": {
        "enabled": true,
        "crossOrigin": {
          "urls": "http://10.130.130.115:8085,http://localhost:4200"
        }
      },
      "clientId": "rm-client",
      "clientSecret": "rm-client-secret",
      "oauthServerUrl": "http://localhost:8087/CompassAuthorization/oauth/check_token",
      "resource_id": "compass-service",
      "tokenValidationTimeout": 0
    }
  },
  "logging": {
    "file": {
      "name": "./log/CompassService.log"
    },
    "level": {
      "root": "INFO",
      "com": {
        "cr": {
          "compass": {
            "rest": "DEBUG"
          }
        }
      }
    },
    "pattern": {
      "file": "%d{ISO8601} [%-5level] %logger{15}:%L - %msg%n",
      "console": "%d{ISO8601} [%highlight(%-5level)] %cyan(%logger{15}:%L) - %msg%n"
    }
  },
  "springdoc": {
    "swagger-ui": {
      "path": "/api.html"
    }
  },
  "spring": {
    "profiles": {
      "active": "default,noAuthorization"
    },
    "security": {
      "oauth2": {
        "resourceserver": {
          "jwt": {
            "issuer-uri": "http://10.130.130.115:8085/realms/CaseViewer"
          }
        }
      }
    }
  }
}

Property Parameters as a JSON string

Property parameters may be passed as Java system properties to Spring Boot.

Therefore, the command line parameter spring.application.json needs to be passed to the Java runtime followed by the JSON string (hint: the JSON string contains the same content as the JSON file in the previous chapter Property Parameters as JSON files ).

java -cp YourApp.jar org.springframework.boot.loader.WarLauncher --spring.application.json='{ \
  "server": { \
    "port": "8086", \
    "servlet": { \
      "contextPath": "/CompassService" \
    } \
  }, \
....
Click here to open full example
java -cp YourApp.jar org.springframework.boot.loader.WarLauncher --spring.application.json='{ \
  "server": { \
    "port": "8086", \
    "servlet": { \
      "contextPath": "/CompassService" \
    } \
  }, \
  "compass": { \
    "systemname": "rm62", \
    "language": "en", \
    "country": "",
    "subLocale": {
      "languages": "nl;nl;en",
      "countries": ";BE;"
    },
    "database": { \
      "global": { \
        "url": "jdbc:mariadb://localhost:3306/rm62", \
        "driver": "org.mariadb.jdbc.Driver", \
        "user": "UW_POS", \
        "password": "UW_POS" \
      } \
    }, \
    "parameter": { \
      "fullloadsystem": false, \
      "testDate": 31.12.2023, \
      "fopdirectory": "C:\\ij_git\\compass_service\\configSamples\\REST\\script", \
      "loadAllCasesOnStartup": true, \
      "loggingarea": 0 \
    }, \
    "security": { \
      "cors": { \
        "enabled": true, \
        "crossOrigin": { \
          "urls": "http://10.130.130.115:8085,http://localhost:4200" \
        } \
      }, \
      "clientId": "rm-client", \
      "clientSecret": "rm-client-secret", \
      "oauthServerUrl": "http://localhost:8087/CompassAuthorization/oauth/check_token", \
      "resource_id": "compass-service", \
      "tokenValidationTimeout": 0 \
    } \
  }, \
  "logging": { \
    "file": { \
      "name": "./log/CompassService.log" \
    }, \
    "level": { \
      "root": "INFO", \
      "com": { \
        "cr": { \
          "compass": { \
            "rest": "DEBUG" \
          } \
        } \
      } \
    }, \
    "pattern": { \
      "file": "%d{ISO8601} [%-5level] %logger{15}:%L - %msg%n", \
      "console": "%d{ISO8601} [%highlight(%-5level)] %cyan(%logger{15}:%L) - %msg%n" \
    } \
  }, \
  "springdoc": { \
    "swagger-ui": { \
      "path": "/api.html" \
    } \
  }, \
  "spring": { \
    "profiles": { \
      "active": "default,noAuthorization" \
    }, \
    "security": { \
      "oauth2": { \
        "resourceserver": { \
          "jwt": { \
            "issuer-uri": "http://10.130.130.115:8085/realms/CaseViewer" \
          } \
        } \
      } \
    } \
  } \
}'
The character "\" is a line continuation character on Linux. In the example above it is used for better readability. On Windows, the character "^" can be used as line continuation character instead.

Property Parameters as Java command-line parameters

Property parameters may be passed as command line parameters to Spring Boot.

To achieve this, the parameters have to be passed to the Java runtime as a command-line parameter with a preceding "--":

java -cp YourApp.jar org.springframework.boot.loader.WarLauncher \
--compass.systemname=rm62 \
--compass.language=en \
--compass.country= \
--compass.subLocale.languages=nl;nl;en \
--compass.subLocale.countries=;BE; \
--compass.database.global.url=jdbc:mariadb://localhost:3306/rm62 \
--compass.database.global.driver=org.mariadb.jdbc.Driver \
--compass.database.global.user=UW_POS \
--compass.database.global.password=UW_POS \
--compass.parameter.fullloadsystem=false \
--compass.parameter.loadAllCasesOnStartup=true \
--compass.parameter.testDate=31.12.2023 \
--compass.parameter.fopdirectory=C:\ij_git\compass_service\configSamples\REST\script \
--compass.security.clientId=rm-client \
--compass.security.clientSecret=rm-client-secret \
--compass.security.oauthServerUrl= \
http://localhost:8087/CompassAuthorization/oauth/check_token \
--compass.security.resource_id=compass-service \
--logging.level.root=INFO \
--logging.level.com.cr.compass.rest=DEBUG \
--server.port=8086 \
--server.servlet.contextPath=/CompassService \
--springdoc.swagger-ui-path=/api.html \
--logging.pattern.file="%d{ISO8601} [%-5level] %logger{15}:%L - %msg%n" \
--logging.pattern.console="%d{ISO8601} [%highlight(%-5level)] %cyan(%logger{15}:%L) - %msg%n" \
--spring.profiles.active=default,noAuthorization
The character "\" is a line continuation character on Linux. In the example above it is used for better readability. On Windows, the character "^" can be used as line continuation character instead.

Overview of properties for CompassService

In CompassService properties can be configured as a property in the file CompassService.[properties | yaml | json], as JSON-string or property parameter (see How to pass properties).

The documentation about installing and configuring CompassService can be found here for 6.2 or here for 6.3.

Click for an overview of CompassService properties
Property Name Description Default

compass.server.home

Location of COMPASS configuration files such as compass.properties.
If this property is set, the configuration will be read from ${compass.server.home}/config/server/compass.properties.
If not set, configuration will be read from the configuration file as defined with command line parameter spring.config.location (see Property Parameters as Java property files) or from a string passed to the app as defined in command line parameter spring.application.json (see Property Parameters as a JSON string) or from command line parameters (see Property Parameters as Java command-line parameters).

compass.parameter.fullloadsystem

NOTE: Please note that when compass.server.home is not set, the name of the parameter is compass.parameter.fullloadsystem
If compass.server.home is set, then the name of the parameter is compass.fullloadsystem
This parameter describes whether the complete rule database is loaded during startup.
Possible values: true | false

false

compass.parameter.loadAllCasesOnStartup

NOTE: Please note that when compass.server.home is not set, the name of the parameter is compass.parameter.loadAllCasesOnStartup
If compass.server.home is set, then the name of the parameter is compass.loadAllCasesOnStartup
This parameter describes whether to load all case details in memory on startup for faster response which results in a longer start-up time.
Possible values: true | false

true

compass.parameter.apiVersion

Version of COMPASS API

1.0

compass.parameter.testDate

From version 6.3 onwards: Optional definition of a date in the format dd.mm.yyyy. When defined COMPASS will use this date as "today" for the capture-, assess- and casePrint-commands.

"today"

knowledge.datasource.jndi

Set value to "none", if you don’t want to use a datasource for COMPASS Knowledge data and you want to use the database configuration defined in ${compass.server.home}/config/server/compass.properties.
Set value to a JNDI Value, if you want to use a datasource of the container. For Apache Tomcat, define <ResourceLink> in context.xml and <Resource> in server.xml for all datasources

case.datasource.jndi

Set value to "none", if you don’t want to use a datasource for COMPASS Case data and you want to use the database configuration defined in ${compass.server.home}/config/server/compass.properties.
Set value to a JNDI Value, if you want to use a datasource of the container. For Apache Tomcat, define <ResourceLink> in context.xml and <Resource> in server.xml for all datasources

cache.datasource.jndi

Set value to "none", if you don’t want to use a datasource for COMPASS Cache data and you want to use the database configuration defined in ${compass.server.home}/config/server/compass.properties.
Set value to a JNDI Value, if you want to use a datasource of the container. For Apache Tomcat, define <ResourceLink> in context.xml and <Resource> in server.xml for all datasources

compass.systemname

Name of the COMPASS - system

compass.database.global.url

If the same database instance is to be used for Knowledge-, Case- and Cache-data, the common global JDBC URL can be set here

compass.database.global.user

If the same database instance is to be used for Knowledge-, Case- and Cache-data, the common global database user can be set here

compass.database.global.password

If the same database instance is to be used for Knowledge-, Case- and Cache-data, the common global password for the database user can be set here

compass.database.global.driver

If the same database instance is to be used for Knowledge-, Case- and Cache-data, the common global classname of the JDBC driver can be set here

org.mariadb.jdbc.Driver

compass.database.knowledge.url

JDBC URL for COMPASS Knowledge data
If both compass.database.global.url and compass.database.knowledge.url are set, the latter will be used by COMPASS.

compass.database.knowledge.user

Database user for COMPASS Knowledge data
If both compass.database.global.user and compass.database.knowledge.user are set, the latter will be used by COMPASS.

compass.database.knowledge.password

Password for database user for COMPASS Knowledge data
If both compass.database.global.password and compass.database.knowledge.password are set, the latter will be used by COMPASS.

compass.database.knowledge.driver

Classname of JDBC driver for COMPASS Knowledge data
If both compass.database.global.driver and compass.database.knowledge.driver are set, the latter will be used by COMPASS.

compass.database.knowledge.reconnect

If set to true, COMPASS attempts to reconnect to the database in case the connection has been dropped / timed out
Possible values: true | false

true

compass.database.knowledge.real

Responsible for the representation of decimal numbers
Possible values: java.lang.Float | java.lang.Double

java.lang.Double

compass.database.knowledge.viewname.Author

The Author table is known under this name (table name, view name or synonym name)

c40_author

compass.database.knowledge.viewname.BoolOrInt

The BoolOrInt table is known under this name (table name, view name or synonym name)

c40_boolorint

compass.database.knowledge.viewname.Double

The Double table is known under this name (table name, view name or synonym name)

c40_double

compass.database.knowledge.viewname.Group

The GroupID table is known under this name (table name, view name or synonym name)

c40_groupid

compass.database.knowledge.viewname.Index

The Index table is known under this name (table name, view name or synonym name)

c40_index

compass.database.knowledge.viewname.Keys

The Keys table is known under this name (table name, view name or synonym name)

c40_keys

compass.database.knowledge.viewname.Name

The Name table is known under this name (table name, view name or synonym name)

c40_name

compass.database.knowledge.viewname.PersObj

The PersObj table is known under this name (table name, view name or synonym name)

c40_persobj

compass.database.knowledge.viewname.Relation

The Relation table is known under this name (table name, view name or synonym name)

c40_relation

compass.database.knowledge.viewname.Search

The Search table is known under this name (table name, view name or synonym name)

c40_search

compass.database.knowledge.viewname.String

The String table is known under this name (table name, view name or synonym name)

c40_string

compass.database.case.url

JDBC URL for COMPASS Case data
If both compass.database.global.url and compass.database.case.url are set, the latter will be used by COMPASS.

compass.database.case.user

Database user for COMPASS Case data
If both compass.database.global.user and compass.database.case.user are set, the latter will be used by COMPASS.

compass.database.case.password

Password for database user for COMPASS Case data
If both compass.database.global.password and compass.database.case.password are set, the latter will be used by COMPASS.

compass.database.case.driver

Classname of JDBC driver for COMPASS Case data
If both compass.database.global.driver and compass.database.case.driver are set, the latter will be used by COMPASS.

compass.database.case.reconnect

If set to true, COMPASS attempts to reconnect to the database in case the connection has been dropped / timed out
Possible values: true | false

true

compass.database.case.rightPadChar

When true, the values of char-columns are right-padded with blanks up to the length of the column, when COMPASS accesses these tables. This is required for certain drivers and data base systems, e.g. Oracle.
Possible values: true | false

false

compass.database.case.viewname.Author

The Author table is known under this name (table name, view name or synonym name)

c40_authorcase

compass.database.case.viewname.CaseData

The CaseData table is known under this name (table name, view name or synonym name)

c40_casedata

compass.database.case.viewname.ResultData

The ResultData table is known under this name (table name, view name or synonym name)

c40_resultdata

compass.database.cache.url

JDBC URL for COMPASS Cache data
If both compass.database.cache.url and compass.database.cache.url are set, the latter will be used by COMPASS.

compass.database.cache.user

Database user for COMPASS Cache data
If both compass.database.cache.user and compass.database.cache.user are set, the latter will be used by COMPASS.

compass.database.cache.password

Password for database user for COMPASS Cache data
If both compass.database.cache.password and compass.database.cache.password are set, the latter will be used by COMPASS.

compass.database.cache.driver

Classname of JDBC driver for COMPASS Cache data
If both compass.database.cache.driver and compass.database.cache.driver are set, the latter will be used by COMPASS.

compass.database.cache.viewname.CacheData

The CacheData table is known under this name (table name, view name or synonym name)

c40_cache

compass.database.cache.cacheType

This entry defines a type of the cache implementation. Currently, supports only SQL.

SQL

compass.language

The language locale COMPASS is running according to ISO 639-alpha-2

de

compass.country

The country locale COMPASS is running according to ISO 3166 alpha-2

compass.sublocales

Constant "0"

0

compass.subLocale.languages

NOTE: Please note that this parameter is only used, when compass.server.home is not set. The set of sublanguage locales COMPASS is running according to ISO 639-alpha-2. The languages need to be separated by semicolons (;).

compass.subLocale.countries

NOTE: Please note that this parameter is only used, when compass.server.home is not set. The set of sublanguage country locales COMPASS is running according to ISO 3166-alpha-2. The countries need to be separated by semicolons (;) and the position needs to match the position of the defined language.

compass.em.end

Properties for Extra Mortality. Constants for the conversion from extra mortalities to loadings. Do not change default values.

50

compass.em.toAge

Properties for Extra Mortality. Constants for the conversion from extra mortalities to loadings. Do not change default values.

50

compass.em.table

Properties for Extra Mortality. Constants for the conversion from extra mortalities to loadings. Do not change default values.

6

compass.em.calculationInterest

Properties for Extra Mortality. Constants for the conversion from extra mortalities to loadings. Do not change default values.

1.75

compass.parameter.turbo

Screenbuilder providing a TURBO action for each screen, if the property TURBO is set to true.
When TURBO is called, COMPASS will navigate either to the end of data capturing or to the first field containing wrong / missing input data
Possible values: true | false

true

compass.parameter.forceNavigation

If set to true, Screenbuilder allows the navigation away from a screen (via OK-button or via direct navigation to another screen) even when the current screen is inconsistent.
Possible values: true | false

true

compass.parameter.saveBeforeQuitting

If set to true, Screenbuilder allows saving of a case before quitting (Cancel). If this property is missing or not set to true, Screenbuilder always quits without saving the case.
Possible values: true | false

true

compass.parameter.trailingBlanksFix

Some databases do not trim trailing spaces as default behaviour. In this case, the property trailingBlanksFix has to be set to true. This ensures, that locale-parameters are passed to the database as 4-characters filled up with spaces If set to true, the locale-parameter is always passed ‘as is’ without trailing spaces.
Possible values: true | false

false

compass.parameter.globalConsistency

If set to true, Screenbuilder performs a global plausibility check every time an action (an userAction) is sent to the COMPASS: If this property is missing or set to false, the check for global consistency is only done in a few specific situation (like: SAVE, TURBO or clicking OK on the last screen).
Possible values: true | false

true

compass.parameter.printCancelledPOSModules

Optional parameter introduced with version 6.3. It only affects the casePrint-operation, and only the printing of questions from a cancelled POS-dialogue.
Possible values: 0 | 1 | 2
If 1, then no question from a cancelled POS-module is printed.
If 2, then all questions from a cancelled POS-module are printed.
If 0, then all questions up to the moment the POS-dialogue was cancelled, are printed. This was the behaviour before introducing this property.

0

compass.parameter.unrelateDeletes

If set to true ScreenBuilder does not create a DELETE-button for related/unrelated relations. Instead the UNRELATE command will delete the CaseObject, if this object has no more related questions. If missing, or set to false, both buttons will be displayed. Also, the UNRELATE command will not delete the CaseObject.
Possible values: true | false

true

compass.parameter.hideEditButton

If set to true, ScreenBuilder does not create an EDIT-button for relations: When missing, or set to false, an EDIT-button is created for relations accepting multiple elements.
Possible values: true | false

true

compass.parameter.fopdirectory

Directory where COMPASS is looking for the XSLT-files needed for case-print-functionality

compass.security.tokenValidationTimeout

Defines the interval (in minutes) at which a token is checked.
Example:
compass.security.tokenValidationTimeout = 5:
REST-requests will only be checked if the last token-check is older / equal to 5 minutes

0

server.port

REST service is listening on this port, only relevant if the service is running as a stand-alone Spring Boot application

server.servlet.contextPath

REST API prefix, only relevant if the service is running as a stand-alone Spring Boot application

server.sessionTimeout

timeout, only relevant if the service is running as a stand-alone Spring Boot application

spring.jmx.enabled

Set to false if you don’t want to expose management beans to the JMX domain
Possible values: true | false

false

compass.security.cors.enabled

enables CORS (see CORS definition w3.org)
Possible values: true | false

false

compass.security.cors.crossOrigin.urls

specify URLs for which CORS is allowed. URLs have to be entered incl. protocol (i.e. http / https) and port. Multiple URLs can be entered as a comma-separated list

compass.security.resource_id

define the OAuth security resource id
This property needs to be set if spring.profiles.active= springAuthorization (see CompassService 6.2:profiles or CompassService 6.3:profiles)

compass.security.oauthServerUrl

define the OAuth server url which checks the token (OAuth check_token method)
This property needs to be set if spring.profiles.active= springAuthorization (see CompassService 6.2:profiles or CompassService 6.3:profiles)

compass.security.clientId

define the client id for the OAuth server
This property needs to be set if spring.profiles.active= springAuthorization (see CompassService 6.2:profiles or CompassService 6.3:profiles)

compass.security.clientSecret

define the client password for the OAuth server
This property needs to be set if spring.profiles.active= springAuthorization (see CompassService 6.2:profiles or CompassService 6.3:profiles)

compass.security.tokenValidationTimeout

define the timeout for OAuth validation token (0 = no timeout)
This property needs to be set if spring.profiles.active= springAuthorization (see CompassService 6.2:profiles or CompassService 6.3:profiles)

spring.security.oauth2.resourceserver.jwt.issuer-uri

In case you want to integrate with Keycloak, specify the URL for the specific Keycloak-realm
This property needs to be set if spring.profiles.active= keycloakAuthorization (see CompassService 6.2:Integration with Keycloak or CompassService 6.3:Integration with Keycloak)

spring.profiles.active

Active security profile defining type of authorization - see CompassService 6.2:profiles or CompassService 6.3:profiles

springdoc.swagger-ui.path

Path to Swagger-UI (see Swagger UI)
Fixed constant

/api.html

logging.level.root

Sets the overall logging level for this REST service from which all other components will inherit the logging level as long as not specified as a new logging level. Possible values: TRACE | DEBUG | INFO | WARN | ERROR | FATAL | OFF

logging.level.org.springframework.web

Sets logging level for Spring Web. Possible values: TRACE | DEBUG | INFO | WARN | ERROR | FATAL | OFF

logging.level.com.cr.compass.rest

Sets logging level for COMPASS REST component. Possible values: TRACE | DEBUG | INFO | WARN | ERROR | FATAL | OFF

logging.level.org.apache.fop

Sets logging level for Apache FOP. Possible values: TRACE | DEBUG | INFO | WARN | ERROR | FATAL | OFF

logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter

Set logging level for Spring’s CommonsRequestLoggingFilter. Possible values: TRACE | DEBUG | INFO | WARN | ERROR | FATAL | OFF
Further information can be found in the Logback-documentation at https://logback.qos.ch/ and the Spring Logging documentation available at https://docs.spring.io/spring-boot/reference/features/logging.html.

logging.file.name

Set the location of the log file. By default, logs are written to the console.
Example: logging.file.name=./log/CompassService.log
Further information can be found in the Logback-documentation at https://logback.qos.ch/ and the Spring Logging documentation available at https://docs.spring.io/spring-boot/reference/features/logging.html.

logging.pattern.file

Set the logging pattern for log files.
Example: logging.pattern.file="%d{ISO8601} [%-5level] %logger{15}:%L - %msg%n"
Further information can be found in the Logback-documentation at https://logback.qos.ch/ and the Spring Logging documentation available at https://docs.spring.io/spring-boot/reference/features/logging.html.

0

logging.pattern.console

Set the logging pattern for console output.
Example: logging.pattern.console="%d{ISO8601} [%highlight(%-5level)]
Further information can be found in the Logback-documentation at https://logback.qos.ch/ and the Spring Logging documentation available at https://docs.spring.io/spring-boot/reference/features/logging.html.

CompassService Logging:

CompassService internally uses log4j2 as its logging-api for the REST services. For in-depth documentation of Log4J2, see Log4J2: Configuration with Properties. However, CompassService also calls the COMPASS rule engine, which uses an enhanced logging allowing you to specify logging areas (see Logging the COMPASS rule engine). In CompassService, the logging area needs to be passed via REST API. When sending a request to the REST API, the logging area is defined as a parameter loggingArea.
Furthermore, the COMPASS rule engine also offers the ability to define sub-areas which add additional information to the logging output (i.e. calls to ObjectManager or database calls). For an in-depth description of the principle of logging areas and sub-areas, please refer to Logging the COMPASS rule engine. When setting the logging area via a request, any value can be set which is smaller or equal to ALLAREAS (262143).

Request-Example:

<request>
  	<operation>
 	 	<assess  language=”en” loggingArea=”1024”>
 	 	 	<caseSourceReference>
  	 	 	 	<directCaseReference>
  	 	 	  	 	<Case Id=…>…
  	 	 	  	  	</Case>
  	 	 	  	</directCaseReference>
  	 	 	</caseSourceReference>
 	 	 	<resultDestinationReference>
  	 	 	 	<databaseReference  id=”Case03” subId=”TEST”>
  	 	 	  	</databaseReference>
  	 	 	</resultDestinationReference>
  	 	</assess>
  	</operation>
</request>

Overview of properties for RuleManagerService

In RuleManagerService properties can be configured as a property in the file RuleManagerService.[properties | yaml | json], as JSON-string or property parameter (see How to pass properties).

The documentation about installing and configuring RuleManagerService can be found here for 6.2 or here for 6.3.

Click for an overview of RuleManagerService properties
Property Name Description Default

rulemanager.server.home

Location of COMPASS configuration files such as compass.properties.
If this property is set, the configuration will be read from ${rulemanager.server.home}/config/server/compass.properties.
If not set, configuration will be read from the configuration file as defined with command line parameter spring.config.location (see Property Parameters as Java property files) or from a string passed to the app as defined in command line parameter spring.application.json (see Property Parameters as a JSON string) or from command line parameters (see Property Parameters as Java command-line parameters).

rulemanager.parameter.fullloadsystem

NOTE: Please note that when rulemanager.server.home is not set, the name of the parameter is rulemanager.parameter.fullloadsystem
If rulemanager.server.home is set, then the name of the parameter is rulemanager.fullloadsystem
This parameter describes whether the complete rule database is loaded during startup.
Possible values: true | false

false

rulemanager.parameter.apiVersion

Version of RULEMANAGER API

1.0

rulemanager.parameter.loggingarea

Apart from the log4j-configuration (see RuleManagerService 6.2 - logging or RuleManagerService 6.3 - logging, a logging area can be specified to increase / decrease logging output (see Example defining logging-areas in RuleManagerService)

0

knowledge.datasource.jndi

Set value to "none", if you don’t want to use a datasource for COMPASS Knowledge data and you want to use the database configuration defined in ${compass.server.home}/config/server/compass.properties.
Set value to a JNDI Value, if you want to use a datasource of the container. For Apache Tomcat, define <ResourceLink> in context.xml and <Resource> in server.xml for all datasources

rulemanager.systemname

Name of the COMPASS - system

rulemanager.database.global.url

If the same database instance is to be used for Knowledge-data, the common global JDBC URL can be set here

rulemanager.database.global.user

If the same database instance is to be used for Knowledge-data, the common global database user can be set here

rulemanager.database.global.password

If the same database instance is to be used for Knowledge-data, the common global password for the database user can be set here

rulemanager.database.global.driver

Classname of JDBC driver for COMPASS Knowledge data

org.mariadb.jdbc.Driver

rulemanager.database.knowledge.url

JDBC URL for COMPASS Knowledge data
If both compass.database.knowledge.url and compass.database.knowledge.url are set, the latter will be used by COMPASS.

rulemanager.database.knowledge.user

Database user for COMPASS Knowledge data
If both compass.database.knowledge.user and compass.database.knowledge.user are set, the latter will be used by COMPASS.

rulemanager.database.knowledge.password

Password for database user for COMPASS Knowledge data
If both compass.database.knowledge.password and compass.database.knowledge.password are set, the latter will be used by COMPASS.

rulemanager.database.knowledge.driver

Classname of JDBC driver for COMPASS Knowledge data
If both compass.database.knowledge.driver and compass.database.knowledge.driver are set, the latter will be used by COMPASS.

rulemanager.database.knowledge.reconnect

If set to true, COMPASS attempts to reconnect to the database in case the connection has been dropped / timed out
Possible values: true | false

true

rulemanager.database.knowledge.real

Responsible for the representation of decimal numbers
Possible values: java.lang.Float | java.lang.Double

java.lang.Double

rulemanager.database.knowledge.viewname.Author

The Author table is known under this name (table name, view name or synonym name)

c40_author

rulemanager.database.knowledge.viewname.BoolOrInt

The BoolOrInt table is known under this name (table name, view name or synonym name)

c40_boolorint

rulemanager.database.knowledge.viewname.Double

The Double table is known under this name (table name, view name or synonym name)

c40_double

rulemanager.database.knowledge.viewname.Group

The GroupID table is known under this name (table name, view name or synonym name)

c40_groupid

rulemanager.database.knowledge.viewname.Index

The Index table is known under this name (table name, view name or synonym name)

c40_index

rulemanager.database.knowledge.viewname.Keys

The Keys table is known under this name (table name, view name or synonym name)

c40_keys

rulemanager.database.knowledge.viewname.Name

The Name table is known under this name (table name, view name or synonym name)

c40_name

rulemanager.database.knowledge.viewname.PersObj

The PersObj table is known under this name (table name, view name or synonym name)

c40_persobj

rulemanager.database.knowledge.viewname.Relation

The Relation table is known under this name (table name, view name or synonym name)

c40_relation

rulemanager.database.knowledge.viewname.Search

The Search table is known under this name (table name, view name or synonym name)

c40_search

rulemanager.database.knowledge.viewname.String

The String table is known under this name (table name, view name or synonym name)

c40_string

rulemanager.language

The language locale COMPASS is running according to ISO 639-alpha-2

de

rulemanager.country

The country locale COMPASS is running according to ISO 3166 alpha-2

rulemanager.sublocales

Constant "0"

0

rulemanager.subLocale.languages

NOTE: Please note that this parameter is only used, when rulemanager.server.home is not set. The set of sublanguage locales COMPASS is running according to ISO 639-alpha-2. The languages need to be separated by semicolons (;).

rulemanager.subLocale.countries

NOTE: Please note that this parameter is only used, when rulemanager.server.home is not set. The set of sublanguage country locales COMPASS is running according to ISO 3166-alpha-2. The countries need to be separated by semicolons (;) and the position needs to match the position of the defined language.

server.port

REST service is listening on this port, only relevant if the service is running as a stand-alone Spring Boot application

server.servlet.contextPath

REST API prefix, only relevant if the service is running as a stand-alone Spring Boot application

server.sessionTimeout

timeout, only relevant if the service is running as a stand-alone Spring Boot application

spring.jmx.enabled

Set to false if you don’t want to expose management beans to the JMX domain
Possible values: true | false

false

rulemanager.security.cors.enabled

enables CORS (see CORS definition w3.org)
Possible values: true | false

false

rulemanager.security.cors.crossOrigin.urls

specify URLs for which CORS is allowed. URLs have to be entered incl. protocol (i.e. http / https) and port. Multiple URLs can be entered as a comma-separated list

rulemanager.security.authServerUrl

Defines the URL of the Authorization server (e.g. COMPASS Authorization Server or Keycloak).
Example:
rulemanager.security.authServerUrl=http://localhost:8082/AuthorizationServer

rulemanager.security.requireHttps

If set to true, the Authorization server URL (rulemanager.security.authServerUrl) needs to be https.
Possible values: true | false

false

rulemanager.security.sessionCheckInterval

Sessions / tokens will be checked in the defined regular interval (in milliseconds) to verify they are still valid.

15000

rulemanager.security.roleBasedResourceAccessEnabled

If set to true, role based resource access for secured REST API calls is enabled. Only users with the role CASES can access the REST API. If disabled, any COMPASS user regardless of their role can access the REST API. User roles can be configured in the Authorization Server.
Possible values: true | false

false

rulemanager.security.springAuthorization.tokenBlacklistingOnLogoutEnabled

During login with Spring Authorization Server, the frontend uses a JWT token so that users remain authorized for a certain period of time without having to log in again. This token remains valid until the expiration time even after explicit logout. When this property is set to true, the token will be blacklisted after logout so that the REST API can no longer be accessed with this token. Token blacklisting only supports the springAuthorization profile.
Possible values: true | false

true

rulemanager.security.resource_id

define the OAuth security resource id
This property needs to be set if spring.profiles.active= springAuthorization (see RuleManagerService 6.2:profiles or RuleManagerService 6.3:profiles)

rulemanager.security.oauthServerUrl

define the OAuth server url which checks the token (OAuth check_token method)
This property needs to be set if spring.profiles.active= springAuthorization (see RuleManagerService 6.2:profiles or RuleManagerService 6.3:profiles)

rulemanager.security.clientId

define the OAuth client id for the oauth server
This property needs to be set if spring.profiles.active= springAuthorization (see RuleManagerService 6.2:profiles or RuleManagerService 6.3:profiles)

rulemanager.security.clientSecret

define the OAuth client password for the oauth server
This property needs to be set if spring.profiles.active= springAuthorization (see RuleManagerService 6.2:profiles or RuleManagerService 6.3:profiles)

rulemanager.security.tokenValidationTimeout

define the timeout for OAuth validation token (0 = no timeout)
This property needs to be set if spring.profiles.active= springAuthorization (see RuleManagerService 6.2:profiles or RuleManagerService 6.3:profiles)

spring.security.oauth2.resourceserver.jwt.issuer-uri

In case you want to integrate with Keycloak, specify the URL for the specific Keycloak-realm
This property needs to be set if spring.profiles.active= keycloakAuthorization (see RuleManagerService 6.2:Integration with Keycloak or RuleManagerService 6.3:Integration with Keycloak)

spring.profiles.active

Active security profile defining type of authorization - see RuleManagerService 6.2:profiles or RuleManagerService 6.3:profiles

springdoc.swagger-ui.path

Path to Swagger-UI (see Swagger UI)
Fixed constant

/api.html

logging.level.root

Set logging level from which all other logging levels of this REST service are inheriting as long as they are not overwritten. If also COMPASS rule engine is to be logged, this property needs to be set to INFO or DEBUG (see Logging the COMPASS rule engine). Possible values: TRACE | DEBUG | INFO | WARN | ERROR | FATAL | OFF

logging.level.org.springframework.web

Set logging level for Spring Web. Possible values: TRACE | DEBUG | INFO | WARN | ERROR | FATAL | OFF

logging.level.com.cr.compass.rest

Set logging level for COMPASS REST component. Possible values: TRACE | DEBUG | INFO | WARN | ERROR | FATAL | OFF

logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter

Set logging level for Spring’s CommonsRequestLoggingFilter. Possible values: TRACE | DEBUG | INFO | WARN | ERROR | FATAL | OFF
Further information can be found in the Logback-documentation at https://logback.qos.ch/ and the Spring Logging documentation available at https://docs.spring.io/spring-boot/reference/features/logging.html.

logging.file.name

Set the location of the log file. By default, logs are written to the console.
Example: logging.file.name=./log/CompassService.log
Further information can be found in the Logback-documentation at https://logback.qos.ch/ and the Spring Logging documentation available at https://docs.spring.io/spring-boot/reference/features/logging.html.

logging.pattern.file

Set the logging pattern for log files.
Example: logging.pattern.file="%d{ISO8601} [%-5level] %logger{15}:%L - %msg%n"
Further information can be found in the Logback-documentation at https://logback.qos.ch/ and the Spring Logging documentation available at https://docs.spring.io/spring-boot/reference/features/logging.html.

0

logging.pattern.console

Set the logging pattern for console output.
Example: logging.pattern.console="%d{ISO8601} [%highlight(%-5level)]
Further information can be found in the Logback-documentation at https://logback.qos.ch/ and the Spring Logging documentation available at https://docs.spring.io/spring-boot/reference/features/logging.html.

rulemanager.loggingarea

Set the logging area for RuleManagerService. The logging area defines the logging-options for COMPASS rule engine (see Logging the COMPASS rule engine).

rulemanager.login.check.enabled

Needs to be set to TRUE to enable logging of COMPASS rule engine (see Example defining logging-areas in RuleManagerService)

RuleManagerService Logging:

RuleManagerService internally uses log4j2 as its logging-api for the REST services. For in-depth documentation of Log4J2, see Log4J2: Configuration with Properties. However, RuleManagerService also calls the COMPASS rule engine, which uses an enhanced logging allowing you to specify logging areas (see Logging the COMPASS rule engine). In RuleManagerService, the logging area needs to be passed as a fixed property rulemanager.loggingarea. Please keep in mind that you need to restart the service in case you change the property rulemanager.loggingarea
Furthermore, the COMPASS rule engine also offers the ability to define sub-areas which add additional information to the logging output (i.e. calls to ObjectManager or database calls). For an in-depth description of the principle of logging areas and sub-areas, please refer to Logging the COMPASS rule engine. When setting the logging area, we recommend defining the value ALLAREAS (262143).

Logging the COMPASS rule engine

CompassService and RuleManagerService call the COMPASS rule engine. The rule engine offers the possibility to define logging areas. Logging can be restricted to certain areas, i.e. only information of a certain range is written to the log-files.
COMPASS knows logging areas and sub-areas. They are used to reduce the amount of the log-output when using Level “INFO” or less.
The area concept is an important feature of COMPASS logging: Every piece of logging information belongs to a certain area. An area is identified by a unique number (a power of 2) and/or a technical name. When only information from a specific area should be written into the log-files, the corresponding number has to be passed to COMPASS. This can either be passed in a request to CompassService. For RuleManagerService, it can be specified as a fixed property in the configuration (see How to pass properties). When information from several areas has to be logged, the sum of the corresponding areas should be passed. Information belonging to other areas will not be logged, keeping the log-files small, and the application fast.

As a precondition, the property logging.level.root=INFO needs to be set to INFO or DEBUG.
If you want to log COMPASS rule engine from within RuleManagerService, the property rulemanager.login.check.enabled must exist and be set to true (see Overview of properties for RuleManagerService).

Example passing logging-areas to CompassService

If you want to trigger logging of the COMPASS rule engine, you can use logging areas to enhance logging output. Sub-areas (see Overview of sub-areas) can be added to the logging area (see Overview of logging areas) and passed as request parameter loggingArea. Please bear in mind that ALLAREAS (262143) already includes all sub-areas.

Request-Example I: Logging-area ASSESSMENT:

<request>
  	<operation>
 	 	<assess  language=”en” loggingArea=”1024”>
 	 	 	<caseSourceReference>
  	 	 	 	<directCaseReference>
  	 	 	  	 	<Case Id=…>…
  	 	 	  	  	</Case>
  	 	 	  	</directCaseReference>
  	 	 	</caseSourceReference>
 	 	 	<resultDestinationReference>
  	 	 	 	<databaseReference  id=”Case03” subId=”TEST”>
  	 	 	  	</databaseReference>
  	 	 	</resultDestinationReference>
  	 	</assess>
  	</operation>
</request>

Request-Example II: Logging-area ASSESSMENT plus sub-area DATABASELAYER:

<request>
  	<operation>
 	 	<assess  language=”en” loggingArea=”1026”>
 	 	 	<caseSourceReference>
  	 	 	 	<directCaseReference>
  	 	 	  	 	<Case Id=…>…
  	 	 	  	  	</Case>
  	 	 	  	</directCaseReference>
  	 	 	</caseSourceReference>
 	 	 	<resultDestinationReference>
  	 	 	 	<databaseReference  id=”Case03” subId=”TEST”>
  	 	 	  	</databaseReference>
  	 	 	</resultDestinationReference>
  	 	</assess>
  	</operation>
</request>

In the example above, the logging area ASSESSMENT has the value 1024 and the sub-area DATABASELAYER has the value 2. When adding both values, the logging area for this request is 1026. This means that for this request, all log messages of the logging area ASSESSMENT will be logged plus messages of the sub-area DATABASELAYER.

The documentation about installing and configuring CompassService can be found here for 6.2 or here for 6.3.

Example defining logging-areas in RuleManagerService

If you want to log the COMPASS rule engine from within RuleManagerService, this can be achieved by specifying a logging area as a fixed property (see How to pass properties). This offers the option to specify logging-output of certain areas of the COMPASS rule engine (see Logging the COMPASS rule engine). In RuleManagerService, the logging area needs to be set as a fixed property either in the file RuleManagerService.[properties | yaml | json], as JSON-string or property parameter (see How to pass properties). When setting the logging area, any value can be set which is smaller or equal to ALLAREAS (262143). However, since most logging areas of the COMPASS rule engine apply to capturing / assessing cases, we recommend to pass ALLAREAS (262143). If you want to limit the output (i.e. no logging output of ObjectManager), you can reduce the logging output by subtracting the corresponding sub-area from ALLAREAS (262143).

Property-file example:

rulemanager.loggingarea=0

Property-Example I: Logging-area ALLAREAS:

rulemanager.loggingarea=262143

In the example above, the logging area ALLAREAS has the value 262143. All log messages of the COMPASS rule engine will be logged.
Please note that after changing the property loggingArea, RuleManagerService needs to be restarted for the change to take effect.

Property-Example II: Logging-area ALLAREAS without logging of ObjectManager:

rulemanager.loggingarea=262142

In this example above, the logging area ALLAREAS has the value 262143. However, we subtracted the sub-area OBJECTMANAGER (1) to suppress all log messages from OBJECTMANAGER.

The documentation about installing and configuring RuleManagerService can be found here for 6.2 or here for 6.3.

Overview of logging areas

The following table gives an overview of logging areas:

Name Value

ABSTRACTION

8

RISKGENERATION

16

ASSESSMENT

32

COMPENSATION

64

CONSOLIDATION

128

CASEDATA

256

RESULTDATA

512

USERINTERFACE

1024

RESULTDISPLAY

2048

CASECONTROL

4096

GENERATOR

8192

MAINTGUI

16384

MISC

32768

NETWORK

131072

ALLAREAS

262143 (includes all subareas - see below)

Overview of sub-areas

A sub-area is used to get more detailed information, e.g. analyzing problems when accessing the database. In this case you add the value of the sub-area to the value of the logging area(s) you have chosen. A sub-area passed without a logging area will have no effect.

The following table gives an overview of the sub-areas:

Name Value

OBJECTMANAGER

1

DATABASELAYER

2

CALCULATION

4

SEARCH

65536